package reflect;

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

public class ReflectDemo6 {
    public static void main(String[] args) throws Exception {
        Class cla = Class.forName("reflect.Person");
        Method method  =cla.getMethod("say",String.class,int.class);

        String name = method.getName();
        System.out.println("方法名："+name);

        Class cla2 = method.getReturnType();
        System.out.println("返回值类型是："+cla2);

        int count = method.getParameterCount();
        System.out.println("方法的参数个数有："+count);

        Class[] cla3 = method.getParameterTypes();
        for (Class c :cla3){
            System.out.println(c);
        }
        /*

        int modifiers = method.getModifiers(); //获取方法的访问修饰符
        switch(modifiers){
            case Modifier.PUBLIC:
                System.out.println("是一个公开方法");
                break;
            case Modifier.PRIVATE:
                System.out.println("是一个私有方法");
                break;
            case Modifier.PROTECTED:
                System.out.println("是一个受保护的方法");
                break;
        }
         */
        int modifiers = method.getModifiers();
        switch (modifiers){
            case Modifier.PUBLIC:
                System.out.println("是一个公开方法");
                break ;
            case Modifier.PRIVATE:
                System.out.println("是一个私有方法");
                break;
            case Modifier.PROTECTED:
                System.out.println("这是一个受保护的方法");
                break;

        }

    }
}
